package ar.edu.unq.edp.futbol.usuarios;

import java.util.concurrent.CyclicBarrier;

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;


import persistencia.Fecha;
import unq.equipos.dom.Equipo;
import unq.equipos.dom.partidos.PartidoSimple;

public class UsuarioPartidoSimple extends UsuarioPartido<PartidoSimple> {
	
	private Fecha fecha;

	public UsuarioPartidoSimple(String equipoLocal, String equipoVisitante, CyclicBarrier barrier, Fecha fecha) {
		super(barrier,equipoLocal, equipoVisitante);
		this.fecha = fecha;
	}

	@Override
	public PartidoSimple ejecutarTarea(Session session) {
		Equipo local = this.findEquipo(getEquipoLocal(), session);
		Equipo visitante = this.findEquipo(getEquipoVisitante(), session);
		PartidoSimple partido = new PartidoSimple(local, local.armarFormacion(), visitante, visitante.armarFormacion());
		partido.setFecha(this.fecha);
		return partido;
	}

	private Equipo findEquipo(String equipoName, Session session) {
		return (Equipo)session.createCriteria(Equipo.class)
		.add(Restrictions.eq("nombre", equipoName))
		.uniqueResult();
	}
	
	


}
